from django.http import JsonResponse
from django.shortcuts import render

# Create your views here.
from django.views import View

from apps.areas.models import Area
from utils.response_code import RETCODE

'''
因为数据库中省对应的所属id 为空
所以前端传过来areas/ 我们就认为是查询省
传过来areas/?parent_id=xxxx我们就认为是　市／区县信息

'''
# 设置缓存
# 可以用redis,也可以用系统集成的cache
from django.core.cache import cache
class AreasView(View):
    def get(self,request):
        parent_id=request.GET.get('area_id')
        if parent_id is None:
            # 先读取缓存
            cache_pro=cache.get('cache_pro')
            if cache_pro is None:
                # 说明没有缓存

                # 获取所有省信息
                proviences=Area.objects.filter(parent=None)
                cache_pro=[]
                for pro in proviences:
                    cache_pro.append({
                        'id':pro.id,
                        'name':pro.name,
                    })
                # 设置缓存
                # 可以用redis,也可以用系统集成的cache
                # cache.set(key,value,expires)  expires 过期时间
                cache.set('cache_pro',cache_pro,24*3600)

            return JsonResponse({'code':RETCODE.OK,'province_list':cache_pro})
                # return JsonResponse(pro_list,safe=False)

        else:
            city_list=cache.get('city_%s'%parent_id)
            if city_list is None:
                pro=Area.objects.get(id=parent_id)
                # pro.subs.all忘了去看第五天第十三个视频有省市区三级联动重点
                cities=pro.subs.all()
                city_list=[]
                for city in cities:
                    city_list.append({
                        'id':city.id,
                        'name':city.name,
                    })
                cache.set('city_%s'%parent_id,city_list,24*3600)
            return JsonResponse({'code': RETCODE.OK, 'subs':city_list})
            # return JsonResponse(city_list,safe=False)